package com.dragon.modules.yuegou.service.product;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dragon.common.web.PageRequest;
import com.dragon.modules.yuegou.entity.product.HelpEntity;
import com.dragon.modules.yuegou.enums.product.HelpCheckStatus;
import com.dragon.modules.yuegou.enums.product.HelpReleaseType;
import com.dragon.modules.yuegou.model.merchant.Merchant;
import com.dragon.modules.yuegou.model.merchant.User;
import com.dragon.modules.yuegou.model.order.Order;
import com.dragon.modules.yuegou.model.product.ActivityItem;
import com.dragon.modules.yuegou.model.product.FeaturedItem;
import com.dragon.modules.yuegou.model.product.Help;
import com.dragon.modules.yuegou.model.product.Spu;

import java.util.List;

/**
 * 商品助力活动信息表 服务接口
 *
 * @author pbuilder generated
 * @date 2020-08-31 09:34:32
 * @version 2.0
 */
public interface HelpService extends IService<HelpEntity> {

	/**
	 * 根据商圈ID查询助力列表
	 */
	IPage<Help> helpList(PageRequest page, String busdId);

	/**
	 * 获取助力详情
	 */
	Help detail(String helpId);

	/**
	 * 免费领专区
	 * @param page
	 * @param busdId
	 * @param helpMemberRefId
	 * @return
	 */
	List<Help> getDetailFeeList(PageRequest page, String busdId, String helpMemberRefId);
	
	/**
	 * 创建助力活动
	 */
	void createHelp(String helpId);
	
	/**
     * 保存助力活动
     */
    void saveHelp(Help help, HelpCheckStatus checkStatus, HelpReleaseType releaseType);

	/**
     * 停止助力活动
     */
	void stopHelp(String id);

	/**
	 * 分享助力活动
	 */
	Spu share(String helpId);

	/**
	 * 审核助力活动
	 * @param param
	 */
	void auditHelp(Help param);

	/**
	 * 获取活动详情
	 * @param id
	 * @return
	 */
	Help getHelp(String id);
	/**
	 * 助力成功购买
	 * @param busdId
	 * @param helpId
	 * @return
	 */
	Order myHelpOrder(String busdId, String helpId, String helpMemberRefId);

	/**
	 * 执行助力活动状态变更
	 */
	void expireHelpActivity();

	/**
	 * 获取主力活动的创建人列表
	 * @param merchantId
	 * @return
	 */
	List<User> getCreateByUserListForHelp(String merchantId, String busdId);

	/**
	 * 查询首页推荐精选商品
	 * */
	IPage<FeaturedItem> featuredItems(PageRequest page, String busdId);

	/**
	 * 商户生成海报
	 * @param helpId
	 * @return
	 */
	String merPposters(String helpId, Merchant merchant);
	
	/**
	 * 获取商户活动列表
	 * */
	IPage<ActivityItem> activityList(String merchantId, PageRequest pageInfo);

	void fullHelpInfo(Help help);
}